package com.example.basic.web.mapper.terminal;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.basic.base.BaseEntityMapper;
import com.example.basic.web.model.terminal.TerminalRecord;
import com.example.basic.web.response.TaskRemainsResponse;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 系统操作日志表 Mapper 接口
 * </p>
 *
 */
@Mapper
public interface TerminalRecordMapper extends BaseEntityMapper<TerminalRecord> {

    /**
     * 作业记录列表
     *
     * @param queryPage     分页
     * @param pharmCode     仓库编码
     * @param zoneCode      分区编码
     * @param depotCode     库位编码
     * @param beginTime     开始时间
     * @param endTime       结束时间
     * @param deviceName    设备名称
     * @param type 1-队列，2-记录
     * @return
     */
    IPage<TerminalRecord> queryList(Page<TerminalRecord> queryPage, @Param("pharmCode") String pharmCode, @Param("zoneCode") String zoneCode,
                                    @Param("depotCode") String depotCode, @Param("beginTime") String beginTime,@Param("endTime") String endTime,
                                    @Param("deviceName") String deviceName, @Param("type") String type);

    /**
     * 出入库作业执行情况
     * @return
     */
    List<Map> homeInstructCount();

    /**
     * 将所有未完成的任务直接完成
     * @param documentNo
     * @return
     */
    Boolean finishAllRecord(@Param("documentNo") String documentNo);

    @Select("select max(sort_no) from sys_terminal_record where document_no = #{documentNo})")
    Integer findMaxSortNo(@Param("documentNo")String documentNo);

    /**
     * 遗体信息列表
     * @param searchParam
     * @param sex
     * @param cremation
     * @return
     */
    IPage<TaskRemainsResponse> remainsTaskList(Page<TaskRemainsResponse> queryPage, @Param("searchParam") String searchParam,
                                               @Param("sex") String sex, @Param("cremation") String cremation);
}